package style.Leetcode.初级算法.str.str_20220801_4_反转字符串;

/**
 * 反转字符串
 *
 * 编写一个函数，其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。
 *
 * 不要给另外的数组分配额外的空间，你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。
 *
 示例 1：

 输入：s = ["h","e","l","l","o"]
 输出：["o","l","l","e","h"]
 示例 2：

 输入：s = ["H","a","n","n","a","h"]
 输出：["h","a","n","n","a","H"]

 */
public class Solution {
    /**
     * 思路
     *      1、双指针方式
     *      2、前面跟后面做交换
     */
    public void reverseString(char[] s) {
        for (int i = 0; i < s.length/2; i++) {
            char temp = s[i];
            s[i] = s[s.length-1-i];
            s[s.length-1-i] = temp;
        }

        for (char c : s) {
            System.out.println(c);
        }
    }

    public static void main(String[] args) {
        Solution solution = new Solution();
        solution.reverseString(new char[]{'h','e','l','l','o'});
    }
}
